// 描述
// 牛牛拿到了一个字符串。
// 他每次“点击”，可以把字符串中相邻两个相同字母消除，例如，字符串"abbc"点击后可以生成"ac"。
// 但相同而不相邻、不相同的相邻字母都是不可以被消除的。
// 牛牛想把字符串变得尽可能短。他想知道，当他点击了足够多次之后，字符串的最终形态是什么？
// 输入描述：
// 一个字符串，仅由小写字母组成。（字符串长度不大于300000）
// 输出描述：
// 一个字符串，为“点击消除”后的最终形态。若最终的字符串为空串，则输出0。

// 示例1
// 输入：
// abbc
// 输出：
// ac

// 示例2
// 输入：
// abba
// 输出：
// 0

let demo1 = "abbc";
let demo2 = "abba";
let demo3 = "bbbbb";
const click = (str) => {
  let stack = [];
  for (let i = 0; i < str.length; i++) {
    if (str[i] === stack[stack.length - 1]) {
      stack.pop();
    } else {
      stack.push(str[i]);
    }
  }
  if (stack.length == 0) {
    return 0;
  } else {
    return stack.join("");
  }
};

console.log(click(demo1));
console.log(click(demo2));
console.log(click(demo3));
